/*
 * @Author: your name
 * @Date: 2021-12-20 10:09:37
 * @LastEditTime: 2021-12-20 11:03:53
 * @LastEditors: Please set LastEditors
 * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 * @FilePath: \maplist\src\apis\index.js
 */
/**
 * 请求一些接口，获取城市信息;
 */


import api from "./index"

/**
 * 获取城市信息的思路
 * 1：判断localstorage---有没有存储的已经定位过的城市;
 * 2:如果没有----正常走获取流程
 * 3：如果有----就直接使用;
 */
const getCity = () => {
    return {
        label:
            localStorage.getItem("city"),
        value:
            localStorage.getItem("id")
    }
}

const setCity = data => {
    localStorage.setItem("city", data.label);
    localStorage.setItem("id", data.value);
}
const getCurrentCity = () => {
    const curCity = getCity();
    if (!curCity.value) {
        //没有值  1:先定位;  2:请求/area/info 这个接口;
        return new Promise(resolve => {
            //通过ip定位当前的城市;
            // 创建一个用于 IP定位 的实例
            const myCity = new window.BMap.LocalCity();
            // 调用 get 方法，通过 IP 地址换取到所在城市
            myCity.get(async (result) => {
                const res = await api.getInfo({
                    params: {
                        name: result.name
                    }
                })
                //拿到城市名字 id
                const { label, value } = res.body;
                //把定位好的城市---给存储到本地
                setCity({
                    label,
                    value
                })
                //执行resolve -----不要忘记外面还包了一层promise;
                resolve({ label, value })
            });
        })
    } else {
        return Promise.resolve(curCity)
    }
}

export {
    getCurrentCity,
    getCity,
    setCity
}
